{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# import Moduals and lib.\n",
    "import Evaluation\n",
    "import numpy as np\n",
    "from sklearn import preprocessing, neighbors, svm\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "import pandas as pd\n",
    "import warnings\n",
    "from matplotlib import pyplot as plt\n",
    "from matplotlib import style\n",
    "from collections import Counter\n",
    "import pickle\n",
    "import random\n",
    "from sklearn import metrics\n",
    "style.use('fivethirtyeight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preparing Data "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Load Feaure data\n",
    "fil = open('n_GaussianRandomProjection.pickle', 'rb')\n",
    "X = pickle.load(fil)\n",
    "fil.close()\n",
    "\n",
    "# Load  labels of this Feature\n",
    "fil = open('n_y.pickle', 'rb')\n",
    "Y = pickle.load(fil)\n",
    "fil.close()\n",
    "for i in range(len(Y)):\n",
    "    if Y[i]  == 2:\n",
    "        Y[i] = 0\n",
    "    elif Y[i] == 4:\n",
    "        Y[i] = 1\n",
    "\n",
    "# split data into Train and Teast\n",
    "\n",
    "x_train , x_test, y_train , y_test = train_test_split(X, Y,  test_size=0.4)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train and Test with SVM , KNN, Linear Regerassion,Kmeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# implementing the k-nearest neighbors classifier\n",
    "Knn_Cl = neighbors.KNeighborsClassifier(n_neighbors=3)\n",
    "Knn_Cl.fit(x_train, y_train)\n",
    "\n",
    "# prediction\n",
    "Knn_y_pred_class = Knn_Cl.predict(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluate KNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('Accuracy: ', 0.93928571428571428)\n",
      "('Null Accuracy: ', 0.6642857142857144)\n",
      "('TP :', 81)\n",
      "('TN', 182)\n",
      "('FP', 4)\n",
      "('FN', 13)\n",
      "('Misclassifier Rate :', 0.060714285714285714)\n",
      "(' Sensitivity or recall rate :', 0.86170212765957444)\n",
      "('Specificity: ', 0.978494623655914)\n",
      "('FALSE Positive Rate: ', 0.021505376344086023)\n",
      "('Precision: ', 0.95294117647058818)\n",
      "0.96922900938\n"
     ]
    },
    {
     "data": {
      "image/png": "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\ny72DQr6vJwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8fe8208ad0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "evaluation  = Evaluation.evaluation_fun (Knn_Cl, y_test, Knn_y_pred_class,x_test)\n",
    "evaluation.Accuracy()\n",
    "evaluation.Confusion_Matrix()\n",
    "evaluation.ROC_Curves()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# implementing the svm classifier\n",
    "SVM_CL= svm.SVC(probability=True)\n",
    "SVM_CL.fit(x_train,y_train)\n",
    "\n",
    "# prediction\n",
    "SVM_y_pred_class = SVM_CL.predict(x_test)\n",
    "y_pred_prob = SVM_CL.predict_proba(x_test)[:, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('Accuracy: ', 0.9464285714285714)\n",
      "('Null Accuracy: ', 0.6535714285714286)\n",
      "('TP :', 97)\n",
      "('TN', 168)\n",
      "('FP', 15)\n",
      "('FN', 0)\n",
      "('Misclassifier Rate :', 0.053571428571428568)\n",
      "(' Sensitivity or recall rate :', 1.0)\n",
      "('Specificity: ', 0.91803278688524592)\n",
      "('FALSE Positive Rate: ', 0.081967213114754092)\n",
      "('Precision: ', 0.8660714285714286)\n",
      "0.980339135823\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8fafb68810>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "evaluation  = Evaluation.evaluation_fun (SVM_CL, y_test, SVM_y_pred_class, x_test)\n",
    "evaluation.Accuracy()\n",
    "evaluation.Confusion_Matrix()\n",
    "evaluation.ROC_Curves()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## K-Means"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nS1NSUpJmzpyp/fv3691339WiRYuUnZ2t0NBQSdIjjzyi4OBg5ebm6tChQyotLdXy5cuVm5srh8Mh\nSZo2bZrq6uq0cOFCVVVVacOGDdq4caPP6WcAAEwxfqHS+vXrVVhYaD9vO228cuVKTZ06VT179tTW\nrVtVWFiolpYWxcbGKjs7W08++aT9MwEBASouLta8efN0//33KygoSBkZGXrxxRftmT59+tiFPH78\neIWFhWn27Nk+hRkfH69NmzbpmWee0fr16xUVFaXCwkJupwEAtAuH1+u1vnoM3xQXBvifrpKVnP6n\nq2TtjJx89y8AAIZQqgAAGEKpAgBgCKUKAIAhlCoAAIZQqgAAGEKpAgBgCKUKAIAhlCoAAIZQqgAA\nGEKpAgBgCKUKAIAhlCoAAIZQqgAAGEKpAgBgCKUKAIAhlCoAAIZQqgAAGEKpAgBgCKUKAIAhlCoA\nAIZQqgAAGEKpAgBgCKUKAIAhlCoAAIZQqgAAGEKpAgBgCKUKAIAhlCoAAIZQqgAAGEKpAgBgCKUK\nAIAhlCoAAIZQqgAAGGK0VBsaGjR//nzdddddioqKUnJysp5++mn97W9/85nzer3KyclRXFyc4uLi\nlJOTI6/X6zNz/PhxZWVlKTo6WgkJCcrPz1dLS4vPzMGDBzVp0iRFRUUpKSlJhYWFsizLZ2bXrl0a\nN26cIiMjNWzYMK1fv95kZAAAbEZLta6uTnV1dSooKNDu3bv12muvaffu3Xr88cd95qZPn67KykqV\nlJSopKRElZWVmjFjhr2+tbVVWVlZamxs1Pbt27Vu3TqVlpbq2WeftWdOnTqlyZMnKyIiQmVlZXr5\n5Zf16quvasWKFfZMTU2NMjMzlZqaqvfff19PP/208vPz9fbbb5uMDQCAJKm7yRcbMmSIfv3rX9vP\nExIS9MILLygrK0unTp1SaGioqqqqtHPnTu3YsUOpqamSpGXLlmnixImqrq7W4MGDVVZWpsOHD+vA\ngQOKiYmRJBUUFGju3Ll6/vnnFRoaqs2bN+uLL77Q6tWrFRwcrCFDhujTTz/VqlWrNGfOHDkcDr3x\nxhuKiorS0qVLJUmJiYn66KOPtGLFCj300EMmowMA0P6fqZ4+fVqBgYEKCQmRJLlcLvXu3VsjR460\nZ0aNGqVevXpp79699kxiYqJdqJKUnp6us2fPqqKiwp65++67FRwc7DNTV1enY8eO2TNpaWk++5Oe\nnq59+/bpyy+/bJ/AAIAuy+iR6qW8Xq/+9V//VdnZ2ere/cKm3G63nE6nHA6HPedwONSvXz+53W57\nJjw83Oe1nE6nAgICfGaio6N9Ztp+xu12Kz4+Xm63W/fcc89lM+fOnZPH41FUVNQV97u6uvrrh76G\n9nrdb5uuklPqOlnJ6X+6Sta2M6Ad5bpKdcmSJSoqKrrmzLZt2zRmzBj7eWNjox599FH1799fL7zw\nwjfbyw7WHm9AR7+xnaWr5JS6TlZy+p+ukrUzcl5Xqc6aNUuZmZnXnLn4VG1jY6MyMjIkScXFxQoK\nCrLXRUREyOPxyLIs+2jVsiydPHlSERER9kzbqeA2Ho9Hra2tPjMnTpzwmWl7/lUz3bt3l9PpvJ7o\nAABct+sqVafTed0ldPr0aWVkZMiyLJWUlKh3794+61NTU9XY2CiXy2V/rupyudTU1GQ/T01NVVFR\nkWprazVgwABJUnl5uQIDA5WSkmLPLF68WM3NzXZpl5eXq3///ho4cKA988477/hsv7y8XMOHD1eP\nHj2uKw8AANfL6IVKp0+f1sMPPyyv16tVq1bpzJkzqq+vV319vX2PaWJiou69917l5eXJ5XLJ5XIp\nLy9PEyZMsA/T09LSlJSUpJkzZ2r//v169913tWjRImVnZys0NFSS9Mgjjyg4OFi5ubk6dOiQSktL\ntXz5cuXm5tpHwNOmTVNdXZ0WLlyoqqoqbdiwQRs3btScOXNMxgYAQJLhC5UqKir04YcfSpJGjBjh\ns+7iz1zXrl2r/Px8TZkyRZI0ceJEvfLKK/ZsQECAiouLNW/ePN1///0KCgpSRkaGXnzxRXumT58+\n2rp1q+bNm6fx48crLCxMs2fP9inM+Ph4bdq0Sc8884zWr1+vqKgoFRYWcjsNAKBdOLxer/XVY/im\nuDDA/3SVrOT0P10la2fk5Lt/AQAwhFIFAMAQShUAAEMoVQAADKFUAQAwhFIFAMAQShUA0OEs6/ru\n5rzeuW8LShUA0KGaz1nK2unRlqNnrjm35egZZe30qPncjVOs7fqr3wAAuFjzOUtTyzz6Q+1Z7aw9\nK0makhBy2dyWo2f0xPsNOm9JU8s8eivNqaDujsvmvm04UgUAdAjLspRdfqFQJem8JT3xfsNlR6wX\nF6ok/aH2rLLLPTfEqWBKFQDQIRwOh7IGhajbRQeclxbrpYUqSd0cUtagEPuXpXybUaoAgA4zJSFE\nr4/t61OscX/Zrx/eGa2bwsL0wzujFfeX/fa6bg7p9bF9r3iK+NuIUgUAdKiLizW+Zr+O/vIxdZPk\n0IVSOvrLxxRfs/+GK1SJC5UAAJ2grSh/+NRjki4UahtL0pFfPqZf/el/b6hClThSBQB0kikJIbra\np6QOXfmq4G87ShUA0Cm2HD2jq13Pa/3/+hsNpQoA6HBtV/ne+uRGSRdKtO0hSbc+ufGKt9t821Gq\nAIAOdfFtMzXxw5Tw5Ead14VCPS8p4cmNqokfdtX7WL/NKFUAQIe50n2of71lmH71p//Vaa9Xv/rT\n/+qvtwyz191oxUqpAgA6hGVZKv7zmcu+2OHi22audB/reUsq/vMZvlEJAIA2DodDG8Y7lT4gUNLV\nv9jh0mJNHxCoDeOdN8Q3KnGfKgCgwwR1d+itNKeyyz3KGhRy1dtm2pYX//mMNoy/Mb5MX6JUAQAd\nLKi7Q8X3fvWR55SEED18S/ANcYTahtO/AIAOd71FeSMVqkSpAgBgDKUKAIAhlCoAAIZQqgAAGEKp\nAgBgiMPr9X77v6ICAIAbAEeqAAAYQqkCAGAIpQoAgCGUKgAAhlCqAAAYQqm2s7Vr12ro0KGKjIzU\nuHHjtHv37s7eJR9//OMf9YMf/EBJSUkKCwvTW2+95bPesiy99NJLuu222xQVFaUHHnhAhw8f9pk5\ne/as5s+fr4SEBEVHR+sHP/iBamtrfWa8Xq9ycnIUFxenuLg45eTkyOv1+swcP35cWVlZio6OVkJC\ngvLz89XS0vKNM/7iF7/Q+PHjFRsbq0GDBikrK0uHDh3yu5yS9Prrr2v06NGKjY1VbGysvve97+n3\nv/+93+W81C9+8QuFhYVp/vz5fpf1pZdeUlhYmM/jO9/5jt/llKTPP/9cM2fO1KBBgxQZGamRI0dq\n165dN1RWSrUd/eY3v9HChQv105/+VO+//75SU1OVkZGh48ePd/au2ZqamjRkyBC9/PLLCg4Ovmz9\nL3/5S61cuVKFhYUqKytTeHi4Jk+erNOnT9szP/vZz7Rt2zatW7dO27dv1+nTp5WVlaXW1lZ7Zvr0\n6aqsrFRJSYlKSkpUWVmpGTNm2OtbW1uVlZWlxsZGbd++XevWrVNpaameffbZb5xx165devzxx/X7\n3/9epaWl6t69u/7lX/5FDQ0NfpVTkqKjo1VQUKD33ntP5eXlGjt2rKZOnaqPP/7Yr3Je7MMPP9Sb\nb76p5ORkn+X+lHXw4MGqqqqyHxf/5dxfcnq9Xk2YMEGWZWnTpk3au3evXnnlFYWHh99YWb1er8Wj\nfR4jRoywsrOzfZYlJCRYeXl5nb5vV3r06tXLWrlypf28oaHBioyMtJ577jl7WV1dndW7d29r2bJl\nltfrtY4dO2b16NHDWrNmjT3z8ccfWw6Hw9qyZYvl9XqtvXv3WpKsHTt22DO/+93vLEnWhx9+aHm9\nXmvz5s2Ww+GwPv74Y3vmtddeswIDA62//vWvRnN+9tlnVrdu3az//M//9OucbY+wsDBr2bJlfpnz\n2LFjVnx8vFVaWmr98z//s/XEE0/43Xu6YMECKykp6Yrr/Cnn008/bY0cOfKq62+UrByptpOWlhZV\nVFQoLS3NZ3laWpr27t3bSXv1jzl27Jjq6+t9MgQHB2v06NF2hoqKCn355Zc+MzExMUpMTLRnXC6X\nevfurZEjR9ozo0aNUq9evXxmEhMTFRMTY8+kp6fr7NmzqqioMJqrsbFR58+fV1hYmF/nbG1t1ZYt\nW9TU1KTU1FS/zPnUU0/poYce0tixY32W+1vWmpoa3XbbbRo6dKh+/OMfq6amxu9y/va3v9WIESM0\nbdo03Xrrrfrud7+rNWvWyLKsGyorv6S8nXg8HrW2tvqcupCk8PBwud3uTtqrf0x9fb0kXTFDXV2d\nJMntdisgIEBOp/OymbacbrdbTqfvLyR2OBzq16+fz8yl23E6nQoICDD+57Vw4ULdcccdSk1NleR/\nOQ8ePKj77rtPzc3N6tWrl379618rOTnZ/h+Gv+T81a9+paNHj2rNmjWXrfOn9/Sf/umftGrVKg0e\nPFgnT57U0qVLdd9992nPnj1+lbOmpkbr1q1Tbm6unnrqKR04cEALFiyQJOXk5NwwWSlVdCnPPPOM\n9uzZox07diggIKCzd6ddDB48WB988IFOnTqlt99+W7NmzdI777zT2btlVHV1tV544QXt2LFDPXr0\n6OzdaVff+973fJ7fddddGjZsmDZu3Ki77rqrk/bKvPPnz2v48OH6+c9/LkkaNmyYjh49qrVr1yon\nJ6eT9+76cfq3nbT9rebEiRM+y0+cOKGIiIhO2qt/TGRkpCRdM0NERIRaW1vl8XiuOePxeOzTONKF\nq/hOnjzpM3PpdtqO9k39ef3sZz/Tli1bVFpaqvj4eL/N2bNnTyUkJCglJUU///nPdccdd2jVqlV+\nldPlcsnj8WjUqFFyOp1yOp364x//qLVr18rpdOrmm2/2m6yX6tWrl2677TYdPXrUr97TyMhIJSYm\n+iz7znfSEWfvAAADWElEQVS+o88++8xe37bf18rR2Vkp1XbSs2dPpaSkqLy83Gd5eXm5z7n8b7OB\nAwcqMjLSJ0Nzc7P+53/+x86QkpKiHj16+MzU1taqqqrKnklNTVVjY6NcLpc943K51NTU5DNTVVXl\nc+l7eXm5AgMDlZKS8o2zLFiwwC7Ui29H8LecV3L+/Hm1tLT4Vc4HHnhAu3fv1gcffGA/hg8frilT\npuiDDz7Qrbfe6jdZL9Xc3Kzq6mpFRkb61Xs6atQoHTlyxGfZkSNHFBsbK+nG+e80YOHChYu/Rn5c\nh5tuukkvvfSSoqKiFBQUpKVLl2r37t1asWKF+vTp09m7J+nCRTuffPKJ6uvr9R//8R8aMmSIQkND\n1dLSoj59+qi1tVXLly/XoEGD1NraqmeffVb19fVavny5AgMDFRQUpM8//1xr165VcnKy/v73vysv\nL0+hoaEqKChQt27d1K9fP3300UcqKSnRHXfcodraWuXl5enOO++0L2OPj4/Xtm3bVFZWpuTkZH3y\nySeaN2+eMjIy9OCDD36jjPPmzdN//dd/6c0331RMTIyamprU1NQk6cJffhwOh1/klKTFixerZ8+e\nOn/+vGpra7V69Wpt2rRJixcvtrP5Q86goCCFh4f7PDZv3qy4uDhNnTrVr97T5557zn5Pjxw5ovnz\n5+vo0aNatmyZwsLC/CZnTEyMCgsL1a1bN0VFRem9997TkiVLlJeXpxEjRtw476mpS9t5XPlRVFRk\nxcbGWj179rSGDRtm/fa3v+30fbr4sW3bNkvSZY9HH33U8novXMa+YMECKzIy0goMDLRGjx5t7d69\n2+c16uvrrSeeeMLq27evFRwcbE2YMMHnUnSv12vV1NRYmZmZ1k033WTddNNNVmZmplVTU+Mzc+DA\nAWvChAlWcHCw1bdvXysnJ8eqr6//xhmvlE+StWDBAnvGH3J6vV7r0UcftWJiYqyePXta/fr1s8aN\nG2ffSuBPOa/0uPiWGn/K+vDDD1tRUVFWjx49rP79+1sPPvigtWfPHr/L6fV6reLiYis5OdkKDAy0\nBg0aZL388stWQ0PDDZWV36cKAIAhfKYKAIAhlCoAAIZQqgAAGEKpAgBgCKUKAIAhlCoAAIZQqgAA\nGEKpAgBgCKUKAIAh/weyR4j9bxpshQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8fafb68850>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "KM_CL =  KMeans(n_clusters =2)\n",
    "KM_CL.fit(X)\n",
    "centroids = KM_CL.cluster_centers_\n",
    "labels = KM_CL.labels_\n",
    "\n",
    "colors =10* [\"g.\", \"r.\",\"c.\",\"b.\",\"k.\"]\n",
    "\n",
    "for i in range(len(X)):\n",
    "    plt.plot(X[i][0] , X[i][1], colors[labels[i]], markersize=10)\n",
    "plt.scatter(centroids[:,0],centroids[:,1], marker='x', s=150, linewidths=5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.638054363376\n",
      "('Accuracy: ', 0.94285714285714284)\n",
      "('Null Accuracy: ', 0.6535714285714286)\n",
      "('TP :', 88)\n",
      "('TN', 176)\n",
      "('FP', 7)\n",
      "('FN', 9)\n",
      "('Misclassifier Rate :', 0.057142857142857141)\n",
      "(' Sensitivity or recall rate :', 0.90721649484536082)\n",
      "('Specificity: ', 0.96174863387978138)\n",
      "('FALSE Positive Rate: ', 0.03825136612021858)\n",
      "('Precision: ', 0.9263157894736842)\n"
     ]
    }
   ],
   "source": [
    "correct = 0\n",
    "for i in range(len(X)):\n",
    "    predict_me = np.array(X[i].astype(float))\n",
    "    predict_me = predict_me.reshape(-1 , len(predict_me))\n",
    "    #     print(predict_me)\n",
    "    prediction = KM_CL.predict(predict_me)\n",
    "    if prediction[0] == Y[i]:\n",
    "        correct +=1\n",
    "        \n",
    "print(correct / float(len(X)))\n",
    "evaluation  = Evaluation.evaluation_fun (LR_CL, y_test, LR_y_pred_class, x_test)\n",
    "evaluation.Accuracy()\n",
    "evaluation.Confusion_Matrix()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "LR_CL =  LinearRegression()\n",
    "\n",
    "LR_CL.fit(x_train, y_train)\n",
    "# with open('linerregression.pickle','wb') as f:\n",
    "#     pickle.dump(clf, f)\n",
    "# pickle_in = open('linerregression.pickle', 'rb')    \n",
    "# clf = pickle.load(pickle_in)\n",
    "LR_y_pred_class = Knn_Cl.predict(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('Accuracy: ', 0.94285714285714284)\n",
      "('Null Accuracy: ', 0.6535714285714286)\n",
      "('TP :', 88)\n",
      "('TN', 176)\n",
      "('FP', 7)\n",
      "('FN', 9)\n",
      "('Misclassifier Rate :', 0.057142857142857141)\n",
      "(' Sensitivity or recall rate :', 0.90721649484536082)\n",
      "('Specificity: ', 0.96174863387978138)\n",
      "('FALSE Positive Rate: ', 0.03825136612021858)\n",
      "('Precision: ', 0.9263157894736842)\n"
     ]
    }
   ],
   "source": [
    "evaluation  = Evaluation.evaluation_fun (LR_CL, y_test, LR_y_pred_class, x_test)\n",
    "evaluation.Accuracy()\n",
    "evaluation.Confusion_Matrix()\n",
    "# evaluation.ROC_Curves()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "too many values to unpack",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-11-42d9e74a681a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     27\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     28\u001b[0m \u001b[0mvoted_classifier\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0mVoteClassifier\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mKnn_Cl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSVM_CL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mKM_CL\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 29\u001b[0;31m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\" Voted_classifier  accuracy percent\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnltk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassify\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maccuracy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvoted_classifier\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     30\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Classification :\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvoted_classifier\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"confidence %:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvoted_classifier\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconfidence\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     31\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Classification :\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvoted_classifier\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"confidence %:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvoted_classifier\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconfidence\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/home/mu7ammad/anaconda2/lib/python2.7/site-packages/nltk/classify/util.pyc\u001b[0m in \u001b[0;36maccuracy\u001b[0;34m(classifier, gold)\u001b[0m\n\u001b[1;32m     85\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     86\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0maccuracy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mclassifier\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m     \u001b[0mresults\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclassifier\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassify_many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfs\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mfs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgold\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     88\u001b[0m     \u001b[0mcorrect\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mr\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgold\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     89\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mcorrect\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: too many values to unpack"
     ]
    }
   ],
   "source": [
    "#  Combining Algos with a Vote\n",
    "\n",
    "from nltk.classify import ClassifierI\n",
    "from statistics import mode\n",
    "import nltk\n",
    "class VoteClassifier(ClassifierI):\n",
    "    def __init__ (self, *classifiers):\n",
    "        self._classifiers = classifiers\n",
    "        \n",
    "    def classify(self, features):\n",
    "        votes = []\n",
    "        for c in self._classifiers:\n",
    "            v = c.classify(features)\n",
    "            votes.append(v)\n",
    "        return mode(votes)\n",
    "    \n",
    "    def confidence(self, features):\n",
    "        votes = []\n",
    "        for c in self._classifiers:\n",
    "            v = c.classify(features)\n",
    "            votes.append(v)\n",
    "            \n",
    "        choice_votes = votes.count(mode(votes))\n",
    "        print(choice_votes)\n",
    "        conf = float(choice_votes) / len(votes)\n",
    "        return conf\n",
    "\n",
    "voted_classifier =  VoteClassifier(Knn_Cl, SVM_CL, KM_CL)\n",
    "print(\" Voted_classifier  accuracy percent\", (nltk.classify.accuracy(voted_classifier, x_test)) *100)\n",
    "print(\"Classification :\", voted_classifier.classify(x_test[0][0]), \"confidence %:\", float(voted_classifier.confidence(x_test[0][0])*100))\n",
    "print(\"Classification :\", voted_classifier.classify(x_test[1][0]), \"confidence %:\", float(voted_classifier.confidence(x_test[1][0])*100))\n",
    "print(\"Classification :\", voted_classifier.classify(x_test[2][0]), \"confidence %:\", float(voted_classifier.confidence(x_test[2][0])*100))\n",
    "print(\"Classification :\", voted_classifier.classify(x_test[3][0]), \"confidence %:\",float( voted_classifier.confidence(x_test[3][0])*100))\n",
    "print(\"Classification :\", voted_classifier.classify(x_test[4][0]), \"confidence %:\", float(voted_classifier.confidence(x_test[4][0])*100))\n",
    "print(\"Classification :\", voted_classifier.classify(x_test[5][0]), \"confidence %:\", float(voted_classifier.confidence(x_test[5][0])*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
